/** 是否为合法的URL
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/** 是否是字符串
 * @param {string} str
 * @returns {Boolean}
 */
export function isString(str) {
  if (typeof str === 'string' || str instanceof String) {
    return true
  }
  return false
}

/** 是否是一个数组
 * @param {Array} arg
 * @returns {Boolean}
 */
export function isArray(arg) {
  if (typeof Array.isArray === 'undefined') {
    return Object.prototype.toString.call(arg) === '[object Array]'
  }
  return Array.isArray(arg)
}

/** 是否为空
 * @param params
*/
export function validatenull(params) {
  if (params) {
    return true
  }
  return false
}

/** 是否为英文
 * @param {String} str
 */
export function isEn(str) {
  if (/^[a-zA-Z]+$/.test(str)) return true
  return false
}

/**
 * 是否为中文
 * @param {String} str
 */
export function isCn(str) {
  if (/.*[\u4e00-\u9fa5]+.*$/.test(str)) return true
  return false
}

/**
 * 只能是中文
 * @param {String} str
 */
export function isOnlyCn(str) {
  if (/^[\u4e00-\u9fa5]+$/.test(str)) return true
  return false
}

/** 
 * 只能输入下划线 字母 数字
*/
export function _isEnNmuber (str) {
  if (/[^\w_]/g.test(str)) return false;
  return true
}

/** 
 * 以英文开头只能出现数字英文下划线
*/
export function _isEnNum (str) {
  if (/^[a-zA-Z][a-zA-Z0-9_]*$/.test(str)) return true;
  return false;
}

/** 
 * 是否为正整数
*/
export function isInteger (str) {
  if (/^[1-9][0-9]*$/.test(str)) return true;
  return false
}
/** 
 * 是否为数字
*/
export function isNumber (str) {
  if (/^[0-9]*$/.test(str)) return true;
  return false
}


/**
 * 是否是特殊字符
 */
export function isSpeialCharacters (str) {
  if (/[^0-9a-zA-Z\u4e00-\u9fa5]+/.test(str)) return true;
  return false;
}
/** 
 * 是否为中文、英文、数字和下划线
*/
export function isNoSpeialCharacters (str) {
  if (/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(str)) return true;
  return false
}
/** 
 * 是否为英文、数字
*/
export function isEnOrNumber (str) {
  if (/^[0-9a-zA-Z]+$/.test(str)) return true;
  return false
}

/** 
 * 是否为大写英文和中划线
*/
export function isEN2 (str) {
  // eslint-disable-next-line
  if (/^[A-Z\-]+$/.test(str)) return true;
  return false
}
/** 
 * 是否为手机号
*/
export function isPhone (str) {
  if (/^1(3|4|5|6|7|8|9)\d{9}$/.test(str)) return true;
  return false
}
/** 
 * 是否为邮箱
*/
export function isEmail (str) {
  if (/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(str)) return true;
  return false
}
/** 
 * 不能以下划线开头，只能为英文小写和下划线
*/
export function isLowerEnOrLineNotBegin (str) {
  if (/^(?!_)[a-z_]+$/.test(str)) return true;
  return false
}
/** 
 * 不能有空格
*/
export function isSpace (str) {
  if (/^\S+$/.test(str)) return true;
  return false
}

